package com.ocom.payhandle.feign;

import com.ocom.common.constant.PayConfigUrl;
import com.ocom.common.entity.card.EntityXfAccountInfo;
import com.ocom.common.entity.card.EntityXfGoodsListProcess;
import com.ocom.common.entity.card.EntityXfRecordRepairpay;
import com.ocom.common.entity.card.EntityXfRecordWaitpay;
import com.ocom.common.request.callpackage.AddPackagePayRequest;
import com.ocom.common.request.payconfig.mealorder.GetOrderPlanDishesRequest;
import com.ocom.common.request.web.ConsTimeConfigOnShowRequest;
import com.ocom.common.resp.Result;
import com.ocom.common.vo.payconfig.kitchenprinter.PlanKitchenPrinterRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(value = "payconfig")
public  interface PayConfigClientService {

    //2.1.获取餐段名称信息(getMealNameInfo)
    @GetMapping(PayConfigUrl.URLP_PayConfig_GetMealNameInfo)
    Result GetMealNameInfo(@RequestParam("comId") Long comId);

    @PostMapping(PayConfigUrl.Url_addPackagePay)
    public Result addPackagePay(@RequestBody AddPackagePayRequest request);

    @PostMapping(PayConfigUrl.Url_saveXfRecordRepairpay)
    public Result saveXfRecordRepairpay(@RequestBody EntityXfRecordRepairpay request);

    @PostMapping(PayConfigUrl.Url_RepairpayRemoveById)
    public Result repairpayRemoveById(@RequestBody EntityXfRecordWaitpay request);

//    @PostMapping(PayConfigUrl.Url_RepairpayUpdatePayState)
//    public Result updatePayState(@RequestBody EntityXfRecordWaitpay request);

    @PostMapping(PayConfigUrl.Url_insertWhiteInfo)
    public Result White(@RequestParam("companyId")Long companyId,@RequestParam("pId") Long pId,@RequestParam("state") Long state);


    // 修改账号信息(updateXFAccount)
    @PostMapping(PayConfigUrl.Url_UpdateXFAccount)
    public Result UpdateXFAccount(@Validated @RequestBody EntityXfAccountInfo entityXfAccountInfo);

    @PostMapping(PayConfigUrl.Url_planKitchenPrinter)
    public Result planKitchenPrinter(@RequestBody PlanKitchenPrinterRequest request);

    @PostMapping(PayConfigUrl.Url_getOrderPlanDishes)
    public Result getOrderPlanDishes(@RequestBody GetOrderPlanDishesRequest request);

    @PostMapping(PayConfigUrl.Url_addOrderDishes)
    public Result addOrderDishes(@RequestBody EntityXfGoodsListProcess entityXfGoodsListProcess);

    @PostMapping(PayConfigUrl.URLP_PayConfig_GetMealTimeInfo)
    Result GetMealTimeInfo(@RequestBody ConsTimeConfigOnShowRequest request);
}
